// const MemoryFileSystem = require("memory-fs");
const middleware = require("./middleware");
const fs = require('fs')
// let memoryFileSystem = new MemoryFileSystem();

/**
 * webpack开发中间件
 * 
 * @param {*} compiler 
 */
function webpackDevMiddleware(compiler) {
    // 1.真正的以监听模式启动webpack编译(编译一次，然后不退出，继续监听文件变化)
    compiler.watch({},()=>{
        console.log('监听文件变化，webpack重新编译')
    })
    // 当webpack准备写入文件的时候，是用compiler.outputFileSystem来写入的,并不是卸载硬盘上的，而是写在内存里
    // let fs = compiler.outputFileSystem = memoryFileSystem;
    // 2.返回一个express中间件，用来预览我们产出的资源文件(产出的文件并不是卸载硬盘上，为了提高性能，产出的文件刚在内存里)
    return middleware({
        fs,
        outputPath:compiler.options.output.path //写入到哪个目录中
    })
}

module.exports = webpackDevMiddleware;